SIMD instructions are those instructions that perform the same operation on two or more pieces of a data word at the same time. A SIMD data word consists of two single-precision floating-point numbers, packed into a floating-point word. In an example of a 82-bit floating-point word, the low-SIMD data is stored in bits 31–0, and the high-SIMD data is stored in bits 63–32. Remaining bits (81–64) of the 82-bit word are set to a predefined constant.
Currently, two miscellaneous units 5, 6 and two MAC units 3, 4 are used to perform SIMD instructions. Miscellaneous units (MISC) 5, 6 are devices that perform operations not requiring a multiply-accumulate operation, such as, logical functions. A first MAC unit 3 is responsible for performing a multiply-accumulate operation on the high-bits of the SIMD word. The second MAC unit 4 is responsible for performing a multiple-accumulate operation on the low-bits of the SIMD word. MAC unit results are forwarded to a single register file 7. A block diagram of an example of the prior-art system architecture to perform SIMD instructions using multiple MAC units 3, 4 is illustrated in FIG. 1. This prior-art implementation, which includes two full-precision MAC units 3, 4, further includes, two MISC units 5, 6, and two single-precision SIMD units 1, 2. The prior-art system architecture can simultaneously perform any of two SIMD instructions, one SIMD and one non-SIMD instruction, or two non-SIMD instructions.
Thus, a heretofore-unaddressed need exists in the industry to perform SIMD instructions using a single MAC unit while minimizing operational latency.